// newapi/repairRoutes.js
const express = require('express');
const router = express.Router();
const Repair = require('../../models/newmodels/repairSchema'); // 维修信息文档

//维修分类--维修保内外

// 创建一个新的维修记录
router.post('/repairsNew', async (req, res) => {
  try {
    const { machineId, repairType } = req.body;
    console.log('=========', req.body);

    // 参数校验
    if (!machineId || !repairType) {
      return res.status(400).json({
        code: '400',
        msg: 'machineId 和 repairType 不能为空',
        data: null
      });
    }

    // 验证维修类型有效性
    const validTypes = ['保内', '保外', '修板', '外包维修'];
    if (!validTypes.includes(repairType)) {
      return res.status(400).json({
        code: '400',
        msg: `无效的维修类型，可选值：${validTypes.join(', ')}`,
        data: null
      });
    }

    // 创建新维修记录（自动包含默认状态）
    const newRepair = new Repair({
      machineId,
      repairType,
    });

    await newRepair.save();

    // 优化返回数据
    const populatedData = await Repair.findById(newRepair._id)
      .populate({
        path: 'machineId',
        select: '_id machineName serialNumber' // 只返回需要的机器字段
      })
      .select('-__v'); // 排除版本字段

    res.status(200).json({
      code: '200',
      msg: '维修记录创建成功',
      data: {
        _id: populatedData._id,
        machineId: populatedData.machineId,
        repairType: populatedData.repairType,
        repairStatus: populatedData.repairStatus,
        createdAt: populatedData.createdAt,
        updatedAt: populatedData.updatedAt
      }
    });

  } catch (error) {
    console.error('创建维修记录失败:', error);
    res.status(400).json({
      code: '400',
      msg: '维修记录创建失败',
      data: error.message
    });
  }
});



//依据传递过来的数据返回
router.get('/repairsFind', async (req, res) => {
  try {
    // 从查询参数中获取 repairType
    const { repairType } = req.query;
    console.log('查询参数:', req.query);

    // 构建查询条件
    const query = {};
    if (repairType) {
      query.repairType = repairType;
    }
    console.log(query);


    // 执行查询并关联 machineId
    const repairs = await Repair.find(query)
      .populate({
        path: 'machineId',
        // select: '_id machineName serialNumber' // 只返回需要的机器字段
      })
      .select('-__v'); // 排除版本字段

    res.status(200).json({
      code: '200',
      msg: '查询数据成功',
      data: repairs
    });

  } catch (error) {
    console.error('查询数据失败:', error);
    res.status(500).json({
      code: '500',
      msg: '查询数据失败',
      data: error.message
    });
  }
});
router.get('/repairsNewFind', async (req, res) => {
  try {
    // 从查询参数中获取 repairType
    const { repairType, repairStatus } = req.query;
    console.log('查询参数:', req.query);

    // 构建查询条件
    const query = {};
    if (repairType) {
      query.repairType = repairType;
      query.repairStatus = repairStatus;
    }
    console.log(query);


    // 执行查询并关联 machineId
    const repairs = await Repair.find(query)
      .populate({
        path: 'machineId',
      })
      .select('-__v'); // 排除版本字段

    res.status(200).json({
      code: '200',
      msg: '查询数据成功',
      data: repairs
    });

  } catch (error) {
    console.error('查询数据失败:', error);
    res.status(500).json({
      code: '500',
      msg: '查询数据失败',
      data: error.message
    });
  }
});



module.exports = router;